home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky02.ogg")
- local pokus = getRestartCount()
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.oknihach = random(1000) + 500
- if pokus > 1 and random(100) < 20 then
- room.oknihach = -1
- end
- room.rada = random(1000) + 1000
- room.uvod = 0
- room.restrt = 0
- room.oost = 0
- room.zavazim = 0
- room.zavaziv = 0
- room.vlevo = 0
-
- return function()
- if no_dialog() and isReady(small) and isReady(big) then
- if room.oknihach > 0 then
- room.oknihach = room.oknihach - 1
- end
- if room.oknihach < -2 then
- room.oknihach = room.oknihach + 1
- end
- if room.rada > 0 then
- room.rada = room.rada - 1
- end
- if room.uvod == 0 then
- room.uvod = 1
- if pokus == 1 or random(100) < 70 then
- addv(10, "vrak-v-vraky"..random(3))
- end
- if pokus == 1 or random(100) < 70 then
- addm(10, "vrak-m-vrak"..random(3))
- end
- elseif room.oknihach == 0 or room.oknihach > 0 and big.X >= 12 then
- room.oknihach = -100
- if big.X >= 12 then
- addv(3, "vrak-v-nevejdu"..random(2))
- end
- addm(10, "vrak-m-kupovat"..random(2))
- addm(10, "vrak-m-naco")
- room.vyber = {}
- for pom2 = 1, 3 + random(2) do
- repeat
- pom1 = random(7)
- until not room.vyber[pom1]
- room.vyber[pom1] = true
- addm(random(10) + 5, "vrak-m-knihy"..pom1)
- end
- addv(20 + random(20), "vrak-v-vyhodit")
- room.vyber = {}
- for pom2 = 1, 2 + random(2) do
- repeat
- pom1 = random(5)
- until not room.vyber[pom1]
- room.vyber[pom1] = true
- addv(random(10) + 5, "vrak-v-knihy"..pom1)
- end
- addm(0, "vrak-m-pohadky")
- elseif room.rada == 0 then
- room.rada = -1
- pom1 = random(3) + 1
- if odd(pom1) then
- addv(random(20) + 20, "vrak-v-policky")
- end
- if pom1 >= 2 then
- addm(random(20) + 20, "vrak-m-predmety")
- end
- elseif room.oknihach == -2 and big.X >= 12 then
- room.oknihach = -500
- addm(5, "vrak-m-cteni"..random(3))
- elseif oost == 0 and dist(small, sklibak) < 5 and random(100) < 3 then
- room.oost = 1
- addm(random(10) + 5, "vrak-m-ostnatec")
- elseif zavazim == 0 and (sklibak.X == 10 and sklibak.Y == 31) and dist(small, sklibak) <= 1 then
- room.oost = 1
- room.zavazim = 1
- addm(3, "vrak-m-zivocich")
- elseif zavaziv == 0 and (sklibak.X == 8 and sklibak.Y == 5 or sklibak.X == 10 and sklibak.Y == 31) and dist(big, sklibak) <= 1 then
- room.oost = 1
- room.zavaziv = 1
- addv(3, "vrak-v-potvurka")
- elseif room.vlevo == 0 and sklibak.X == 10 and sklibak.Y == 31 and random(100) < 2 then
- room.vlevo = 1
- addv(5, "vrak-v-snek")
- if trubka.X == trubka.XStart and trubka.Y == trubka.YStart then
- addm(3, "vrak-m-ocel")
- addm(40 + random(40), "vrak-m-restart")
- room.restrt = 1
- end
- elseif room.restrt == 0 and sklibak.X < 8 and sklibak.Y == 5 then
- addm(40 + random(40), "vrak-m-restart")
- room.restrt = 1
- elseif room.restrt == 0 and sklibak.X > 10 and sklibak.Y == 31 then
- addm(40 + random(40), "vrak-m-restart")
- room.restrt = 1
- end
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_sklibak()
- return function()
- if math.mod(game_getCycles(), 2) == 0 then
- local anim_table = {
- [0] = function()
- if random(100) < 5 then
- sklibak.afaze = 1 - sklibak.afaze
- end
- if sklibak.dir ~= dir_no then
- sklibak.afaze = 2
- end
- end,
- [2] = function()
- if random(100) < 3 then
- sklibak.afaze = random(2)
- end
- end,
- }
- anim_table[1] = anim_table[0]
-
- switch(sklibak.afaze)(anim_table)
- end
- sklibak:updateAnim()
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_sklibak()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-